Feld im Selektionsbild nur bei Anlage einer Variante sichtbar?

Ich bin gerade über die Aufgabe gestolpert, dass ein Feld im Selektionsbild generell ausgeblendet werden soll. Bei der Anlage einer Variante jedoch, muss das Feld sichtbar sein.

Die Lösung ist relativ einfach: Im PBO des Reports (AT SELECTION-SCREEN OUTPUT) fragen wir das Systemfeld SUBTY ab und steuern mittels MODIFY SCREEN die Sichtbarkeit der Felder.

Coding

*== Parameter soll immer angezeigt werden
PARAMETERS p_diag TYPE char10.
*== Parameter soll nur in der Variantenansicht eingabebereit sein
PARAMETERS p_vari TYPE char10 MODIF ID var.

AT SELECTION-SCREEN OUTPUT.
  IF sy-subty = 20. "Hex:14, Bin:00010100"
    LOOP AT SCREEN.
      IF screen-group1 = 'VAR'.
        IF sy-slset = space.
*== Keine Variante geladen: Feld ausblenden
          screen-active = '0'.
        ELSE.
*== Variante ist geladen: Feld anzeigen (nicht eingabebereit)
          screen-input = '0'.
        ENDIF.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.

Hardcore

Auf der Suche nach einer Lösung habe ich auch eine Alternative gefunden per Dirty-Assign im Systemprogramm RSDBRUNT eine Variable abzufragen:

FIELD-SYMBOLS <mode_Vari> TYPE c.
ASSIGN ('(RSDBRUNT)SUBMIT_INFO-MODE_VARI') TO <mode_vari>.
IF <mode_vari> IS ASSIGNED AND <mode_vari> = 'X'.
  "Pflege der Variante
ENDIF.

Die Variante muss in beiden Fällen über die Transaktion SE38 angelegt werden.

Enno Wulff
Letzte Artikel von Enno Wulff (Alle anzeigen)